package ApplicationModels;

import java.io.Serializable;
import java.util.List;

import org.joda.time.LocalDate;
import org.uqbar.commons.model.ObservableUtils;
import org.uqbar.commons.utils.Observable;

import Domain.Compromiso;
import Domain.Empleado;
import Domain.Tienda;

@SuppressWarnings("serial")
@Observable
public class AgregarCompromisoAppModel implements Serializable {

	private LocalDate fechaCompromiso;
	private Empleado empleadoSeleccionado;
	private Tienda tienda;

	public List<Empleado> getEmpleadosDisponibles() {
		return this.getTienda().getEmpleados();
	}

	public Empleado getEmpleadoSeleccionado() {
		return empleadoSeleccionado;
	}

	public void setEmpleadoSeleccionado(Empleado empleadoSeleccionado) {
		this.empleadoSeleccionado = empleadoSeleccionado;
	}

	public void setTienda(Tienda t) {
		this.tienda = t;
	}

	public Tienda getTienda() {
		return this.tienda;
	}

	public LocalDate getFechaCompromiso() {
		return fechaCompromiso;
	}

	public void setFechaCompromiso(LocalDate fechaCompromiso) {
		this.fechaCompromiso = fechaCompromiso;
	}

	public AgregarCompromisoAppModel(Tienda t) {
		this.setTienda(t);
	}

	public void agregarCompromiso() {
		this.getTienda().agregarCompromiso(
				new Compromiso(this.getEmpleadoSeleccionado(), this
						.getFechaCompromiso()));
		ObservableUtils.firePropertyChanged(this, "tienda.compromisos", this
				.getTienda().getListaDeCompromisos());
	}

}
